﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services", SessionMode=SessionMode.Allowed)]
    public interface IOutboundService2
    {
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(OrdersInfo))]
        string ConfirmShippingReviewByOrderID(List<OrdersInfo> orderList, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string CreatedWaveByWaveTemplate(string waveTemplateID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeleteLoadDetailInfo(string loadID, List<string> lineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteLoadInfo(List<string> loadID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(VanningInfo)), ServiceKnownType(typeof(VanningDetailInfo))]
        string DeleteVanning(List<string> vanningID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(VanningInfo)), ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteVanningContainer(string vanningID, List<string> containerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteWaveFlowDetailInfo(List<string> waveFlowID, List<string> lineID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeleteWaveFlowInfo(List<string> waveFlowID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string DeleteWaveTemplate(List<string> IDS, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetAllLoad(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetAllWaveFlowDetailInfo(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetAllWaveFlowInfo(PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetAllWaveTemplateInfo(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<OrderDetailInfo> GetBatchOrdersInfoAndDetailListByID(string waveID, string ContainerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(LoadHeaderInfo)), OperationContract]
        LoadHeaderInfo GetLoadByID(string loadID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LoadHeaderQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetLoadByQueryEntity(LoadHeaderQueryEntity loadHeaderQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(OrdersInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        List<OrdersInfo> GetShippingReviewByOrderID(string orderID, string ShippingReviewType, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<string> GetUnPrintShippingPickDetailIDByOrderID(string orderID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(VanningInfo))]
        VanningInfo GetVanningByID(string vanningID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(VanningInfo))]
        List<VanningDetailInfo> GetVanningDetailByID(string vanningID, string containerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetVanningInfoByQueryEntity(VanningQueryEntity vanningQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(WaveFlowDetailInfo))]
        List<WaveFlowDetailInfo> GetWaveFlowDetailInfoByID(string waveFlowID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(WaveFlowDetailInfo))]
        WaveFlowDetailInfo GetWaveFlowDetailInfoByIDLineID(string waveFlowID, string lineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WaveFlowInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        WaveFlowInfo GetWaveFlowInfoByID(string waveFlowID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(WaveFlowQueryEntity))]
        DataSet GetWaveFlowInfoByQueryEntity(WaveFlowQueryEntity waveFlowQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(WaveTemplateInfo)), OperationContract]
        WaveTemplateInfo GetWaveTemplateByID(string id, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WaveTemplateQueryEntity)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetWaveTemplateByQueryList(WaveTemplateQueryEntity waveTemplateQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LoadDetailInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string InsertLoadDetailInfo(string orderID, string loadID, string lineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(LoadHeaderInfo))]
        string InsertLoadInfo(LoadHeaderInfo loadHeaderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(VanningInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string InsertVanning(VanningInfo vanningInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(VanningInfo)), ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string InsertVanningDetail(List<VanningDetailInfo> vanningDetailList, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WaveFlowDetailInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string InsertWaveFlowDetailInfo(WaveFlowDetailInfo waveFlowDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(WaveFlowInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string InsertWaveFlowInfo(WaveFlowInfo waveFlowInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WaveTemplateInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string InsertWaveTemplate(WaveTemplateInfo obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(OrdersInfo)), OperationContract]
        List<OrderDetailInfo> PreviewWaveByWaveTemplate(string waveTemplateID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string ShippedByOrderLineQty(string orderID, List<string> orderLineIDs, List<decimal> qtys, string shippDate, string updatedBy, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string ShippingCarriersAssigned(List<string> orderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LoadDetailInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string UpdateLoadAndOrderStatusByLoadID(string status, string loadID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LoadHeaderInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdateLoadInfo(LoadHeaderInfo loadHeaderInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdateOrderStatusByOrderID(List<string> orderIDList, string ordersStatus, string operators, DateTime operatingDate, string abnormal, string handling, List<string> lineID, List<decimal> numberLost, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(VanningInfo)), OperationContract, ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateVanning(VanningInfo vanningInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(VanningInfo)), ServiceKnownType(typeof(VanningDetailInfo)), ServiceKnownType(typeof(VanningQueryEntity)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string UpdateVanningDetail(List<VanningDetailInfo> vanningDetailList, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(WaveFlowDetailInfo))]
        string UpdateWaveFlowDetailInfo(WaveFlowDetailInfo waveFlowDetailInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(WaveFlowInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdateWaveFlowInfo(WaveFlowInfo waveFlowInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(WaveTemplateInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateWaveTemplate(WaveTemplateInfo obj, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string waveOrderActions(string waveID, List<string> orderID, List<string> orderLineID, string waveOrderType, string updatedBy, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string WaveReleasePickTasks(List<string> waveID, string userID, PubParasInfo pubParasInfo);
    }
}

